EXTRA INFORMATION MORE INFORMATION If you require any further information, please see the Setup Builder help file 'Contacting GPP Software' section for information on how to contact GPP Software. DOSEXEC.PIF - *** Important note *** Setup Builder uses a file in the Setup Builder install directory called DOSEXEC.PIF to perform file compression. This file runs a batch file called DOSEXEC.BAT which is created in the Setup Builder directory when Setup Builder is compressing a file. DOSEXEC.BAT is deleted after compression. By default, DOSEXEC.BAT is set up to run C:\SETUP\DOSEXEC.BAT If Setup Builder is installed in a directory other than C:\SETUP you must use Pif Editor to change DOSEXEC.PIF to make it point to DOSEXEC.BAT in the directory in which you have installed Setup Builder. Failure to make this change will cause file compression to fail when a project is being built. For more detailed information, please refer to 'File Compression Errors' on the contents page of the Setup Builder help file. Please also refer to Technical Report GR0001 which is also in the Setup Builder help file. UPGRADES - *** Important note *** If you are installing this software and you already have an existing version installed, this version will automatically overwrite and upgrade the existing version. It will NOT be placed in a new directory. If you wish to keep the existing version, you should back up all the files from the application directory before installing this version. This does not affect first-time installations. NEW FEATURES TO VERSION 3.05 - 3d Dialogs and controls - Redesign/improved ease of use to all dialogs NEW FEATURES TO VERSION 3.06 - Internal bug fixes NEW FEATURES TO VERSION 3.07 - Configuration of compressed file name extensions ie .EXE to .EX_ - Correction of bug which sometimes prevented SaveAs and New dialogs working - Configuration of temporary file directory now possible - Correction of bug during build: if source file was not found, error message was corrupt where it refered to the source file name - Correction of bug at end of build: copying of script file did not delete the dummy script file first resulting in an incorrect space availability check and the script file not being placed on the first disk - Ability to specify target directory in addition to the current drive letter feature. Enables install procedures to be built on your hard disk - Correction of bug which caused the first file overwrite confirmation message in an install procedure to be correct, but subsequent ones to have the file name at the start of the message instead of in place of the '$' substitution marker - New/larger toolbar buttons - 6 extra 'user code' sections - Now supports files larger than the size of diskettes (unlike many alternative products) and splits them across multiple diskettes. Also handles compressed files split across multiple diskettes. Much more efficient use of diskette space NEW FEATURES TO VERSION 3.08 - Now supports background 'advertising' bitmaps during application installation - for company logos etc or a default shaded backdrop Supported by completely new 'Backdrop Display' dialog in Setup Builder - Nested calling of script files from within script files - MakeIcon() extended to allow setting of icon, and default path and supported in 'File Attributes' dialog in Setup Builder - Bug fix: Overwrite confirmation message wrong way round - it refered to overwriting the file on the diskette with that on the hard disk. Now fixed. Code which actually copied files was always Ok even though the message was wrong. - Bug fix: Pressing 'Cancel' after pressing 'Build' caused program to lock. Now fixed. - Confirm overwrite and check useage files now appear in the gauge - Bug fix: MakeIcon() had problems if command had parameters which included a comma - Progman DDE took the comma as the next parameter and created a completely incorrect icon - Backdrop shading now light at top, dark at bottom to conform with Microsoft design standards NEW FEATURES TO VERSION 3.09 - Now supports User Defined dialogs with new functions: CreateDialog CreateControl DestroyDialog SetFocus CentreDialog - Extra toolbar icons added - Visual Basic .MAK project import facility added - Now supplied with Sample projects and script files which are also documented in the help file - Cut/Copy/Paste added to main application window - Setup About dialog copyright text can now be changed - Cut/Copy/Paste added to user code dialog - Number of files limit increased to 1024 for registered versions - User can now configure 'Initialising xxx Setup...' message when SETUP.EXE is first run - Script language file opening/reading/writing enhanced to allow 10 files to be open at a time instead of the previous one for reading and one for writing NEW FEATURES TO VERSION 4.00 - Auto language translation for in-built dialog box buttons added. Languages supported: US English UK English French German - Shared File Registry functions added: Register UnRegister - Shared File Registry now used by Setup Builder created scripts - New standard dialog template added to DialogBox function: DEINSTALL - De-Install procedure completely re-written and significantly enhanced so that it is now automatically created with the user not needing to write script code as before - All dialog text can now be changed by the user - defaults to appropriate language translation (English, French or German) - Target disk space availability checked at install time - OpenIn/Out and CloseIn/Out functions replaced with Open and Close functions which have in turn been extended to allow up to 10 files to be opened at a time instead of the old one for input and one for output at a time - ReadLine/WriteLine functions modified to support above file handling changes - Hourglass now displays during all time consuming processing - SETUP.EXE and INSTALL.EXE now placed on first target diskette at build time so that the user can start an installtion with either SETUP or INSTALL - Help File documentation udpdated - Bug Fix: INST.EXE couldn't handle files being copied to directories with a point in eg an attempt to copy a file to C:\TEST.TMP\TEST.DAT would fail. Now fixed. - Bug Fix: Cut file facility corrupted the current project. Caused by a failure of _mktemp to create the clipboard temporary file name. Now fixed. - New feature added to allow the user to manually encrypt or un-encrypt a script file - Short sight: Prompt text which asks the user at install time about building a program manager group was not available to change in the project dialog text dialog. It now is. - Install/De-Install now removes itself from a H/D once it has completed. It formally left a few files in \WINDOWS\TEMP. The directory however is not removed because many applications use \WINDOWS\TEMP as a temporary file directory - Default text for prompt to create Program manager group and icons did not have a French translation. Now added. - Facility to import external component files from third party products added eg Run-Time support files such as VBRUN300.DLL and Microsoft Access - *** IMPORTANT NOTE: *** Escape character for special characters changed from \ to ^ as it caused all kinds of user confusion and incompatibilities with directory and file names starting with numbers. This change may impact any strings you have used in your scripts which have Escape sequences for non-ASCII characters embedded in them. See the 'Standards and Notations' help, 'Strings' section in the script language help file for more information - GetBackupName() function added - Bug Fix: De-install script code was still using \ as the escape character. Should be ^ Now fixed in Setup Builder which created the script code incorrectly. Bug Fix: De-Install facility did not unprotect protected files before trying to delete them, consequently a de-install did not work. - Bug Fix: File encryption caused German umlaute u () character 252 not to be unencrypted properly due to a fault in the algorithm used. It resulted in the character being replaced by a carriage return (chr 13). Now fixed. - Bug Fix: Copying a file in a script failed with a 'no space on target disk' error message if the drive letter in the file name was supplied in lower case. Now fixed. - Bug Fix: De-install was deleting Program Manager group %Application%. It should have been deleting the group name specified in the Project/PM Group dialog. Now fixed by a change to Setup Builder which created the script incorrectly - Ability to select the language to be used for an install procedure added. This replaces the 'auto' selection which wasn't wholly reliable and required the user to reconfigure Windows to build an install for another country. The user can now build different installs for different countries simply by choosing the language and not having to reconfigure Windows NEW FEATURES TO VERSION 4.01 - INST.EXE converted to use DDEML in DDE conversation with Program Manager instead of 'old-style' SDK message sending protocol - Backdrop Preview facility added - Multitasking added to build process - Internal fixes - Append mode added to file writing Open() function - CLEANUP.EXE now put on first as well as last disks. This means that in a multi-disk install if you quit out before copying files you no longer get asked for the last disk - New tab added to Project Attributes dialog so that the user can select whether to include the following files on the diskette: SETUP.EXE INSTALL.EXE LZEXPAND.DLL - Language support added for: Italian Spanish NEW FEATURES TO VERSION 4.01.002 - Minor bug fixes - Icon text field size increased - Application name field size increased - GOTO statement processing changed. Result = significantly increased performance - IMPORT.INI errors corrected for ODBCINST.DLL/,HLP, GRAPH.VBX - Setup Builder now deletes its temporary files from WINDOWS\TEMP if Windows is shut down while Setup Builder is running. Previously the files didn't get deleted. Normal File/Exit however, has always deleted files correctly. NEW FEATURES TO VERSION 5.00.000 - Major Upgrade - Some backdrop bitmaps cause a GPF. This is now handled as a proper run-time error. The interpreter only handles Windows DIB bitmaps and no other formats. A failure to recognise a bitmap was not being handled properly in older versions of SB. It now is. - New functions added: HideSetup() AppendProfileString() EndCopyFile() - Optional installations facility added which enables you to give the installer the option of several different installations which each install the same or different files (configured by the developer) - User Defined Objects feature added. This is a major change which now means that backdrops and user defined dialogs are considered as objects. Backdrops have been given a complete revamp in the process to make them much more flexible than in previous versions of SB. There is a completely new Object Manager facility which enables objects to be created/deleted/imported and well as all the controls within them maintained - the Object Editor. - Cue Cards (ANA Bill Boards) added as an extention to the User Defined Object feature. - Accelerator keys standardised with Windows conventions - Setup Builder converted to an MDI application and build results window added - Optional full file details in file list ie file size/date/time - Abbreviated file attributes in file list dropped in favour of expanded form - Modified so that DOSEXEC.PIF and COMPRESS.EXE/.TXT reside in the Setup Builder directory instead of WINDOWS\SYSTEM - Progress gauge improved to update visibly correctly when mercury overwrites the text percentage - The following functions have all been changed or dropped from the script language to accomodate the new 'cue card' system: SetBackdropText() Dropped DestroyDialog() Renamed to DestroyObject() CentreDialog() New parameters added, but still backwards compatible - parameters default to make backwards compatible. ShowBackdrop() Parameters completely changed - ConfirmOverWrite() now uses VER.DLL to compare file versions. If a file doesn't have VER.DLL version info, the default date/time version check is done instead. Parameters changed. - Default script file extension changed to .SCR. This is because some security and virus protection systems interfere with DOS and prevent directories such as \WINDOWS\TEMP (where SB installs are placed at install-time) being created. This caused a Setup Builder install to install its run-time in the Windows directory instead of WINDOWS\TEMP (the security/virus protection software must have masked an erroneous error code and returned success to SB, because it didn't fail - SB checks error return codes and would have failed if an error code was returned properly and not artificially masked), including its SETUP.INF script file which overwrote the SETUP.INF file used by the Windows Setup program in the Windows directory. This corrupted the entire Windows installation. Script file name extensions have be changed to avoid further conflict of this nature. Tip: Watch out for these security and virus protection products: they could interfere with your software too! There is no way around this problem except to disable the security/protection products before running an installation. You will find that ALL installation programs from other vendors will not be able to overcome security/virus protection products which prevent directories being created and files deleted. - Script language can now read DOS environment variables as though they were normal script language variables. - Dutch language support added - Display a message in a window and carry on feature added - Run-time interpreter now always compressed on diskette to leave maximum space for your files - Progress gauge functionality extended with new script functions - Bug Fix: Clipboard Paste feature had a bug in it which allowed a file to be pasted into a project more than once. A file can only be included in a project once. Now fixed. - Registry functions added - Bug Fix: Preview failed when the project script was set to be encrypted. Half way through, the script ended up encrypted which the interpreter couldn't handle, causing the preview to fail. - Bug Fix: Adding new files to project either via Project/Edit, 3rd party components or VB import did not default the optional install to 1. This caused the gauge at install time to show 100% all the time! Now fixed. - Bug Fix: De-install script file always created in the default install directory even if the user changes the directory upon first installation. Now changed so that script is created to re-evaluate the de-install script file name when the user enters the install directory. - Bug Fix: Clicking 'Back' in ASKPATH dialog at install time caused a run-time Error 05 (label not found) on :BACK1 This occured when the de-install feature was not selected in a project. Now fixed. - Bug Fix: 'Interlocking behaviour' between 'protect' and 'unprotect' file properties when they are clicked on. Caused by erroneous code which set the wrong (opposite) property when either property was changed. Now fixed. - Project Files, File Attributes, Project Objects and Output windows now save their position and size so that they appear in their last position when recreated. This also works between SB sessions. - Maximum files increased to 2048 (Professional version only). Project Files window is now an Owner Drawn list. - Bug Fix: Several File Open/Save As dialogs displayed a corrupted 'List of File Types'. Now fixed. - Project Directories dialog added. Although installations with multiple install directories have always been possible with Setup Builder, the new dialog makes creating such installations much easier, automating the process completely. Previously, extra user defined script was required. This extra script is still compatible, but should be removed if the new dialog is used instead. - Label stack modified to improve performance. It now uses a buffer rather than CStrings which use heap space and compete with user defined objects for memory. With large numbers of labels and large numbers of user defined objects, 'strange' effects may have been noticed. Now fixed. - DIBAPI.DLL now combined into interpreter module (INSTxx.EXE) - New functions added: RegWriteInt() RegGetInt() NEW FEATURES TO VERSION 5.01.000 - Major Upgrade - 32 bit support now provided in the form of a full 32 bit version of the Setup Builder and run-time interpreter programs. The user can select whether they want a 16 or 32 bit or both installation: the run-time will identify which to run. - New user-defined dialog controls added: Listbox Combo box Dropdown list - New commands added AddListItem() Skip() OpenDeInstall() AddDeInstall() CloseDeInstall() - Full support for long file names (32 bit version only) - Full support of Windows 95/NT registry (32 bit version only) - Registration of OLE controls added - De-Install now creates a PM icon and no longer requires the install disk to de-install an application. - Option to include ctl3d32.dll added to project attributes dialog - Bug fix: MkDir and RmDir did not handle long directory names correctly, especially if they contained spaces - Default install directory field in Project Attributes dialog increased in size to allow long directory names - GetDiskSpace() function internals modified. (Only affects CopyFile() where no drive letter is specified on the target file name). - ChangeConfig function added - Use defined script sections in SB increased to 6K - Bug Fix: 32 bit run-time couldn't create icons correctly with long file names. Now fixed. NOTE: The fix involves a change in the script syntax of the MakeIcon() function. Please see the Setup Script help file for the new syntax. Use of icon files still does not work under Win95 when the icon file name is in a directory with a name containing spaces or the filename itself contains spaces. This is due to a bug in the Win95 desktop DDE which cannot handle an icon file specification which contains spaces. You can manually change an icon's properties in Win95 to remedy this problem. This does not occur in NT. - Bug Fix: ConfirmOverwrite() was not comparing file dates correctly. This occured only when the files being compared did not contain version info. Now fixed. - New user defined code section added: pre-application de-installation. This script is executed before any files or directories are removed. NEW FEATURES TO VERSION 5.01.001 - 'Flickering' progress gauge stopped from flickering. - SETUP/INSTALL.EXE now correctly copies CTL3D32.DLL into SYSTEM32 directory when a 32 bit install is run under Windows NT. - Internal file version numbers are now displayed in the Setup Builder file list when 'full file details' are shown. - Bug Fix: Due to the script language text 'substitution' feature, the new de-install feature was not correctly created by the install script because SB was writing incorrect script in the SETUP.SCR for user-script sections 'pre-deinstall' and 'Application deinstallation'. This meant that variables (% character) and carriage returns (| character) were incorrectly translated, causing a de-install to fail. Now fixed. - CTL3DV2.DLL and CTL3D32.DLL now compressed on diskette to save some space and to stop some problems with DLL's being found on the diskette instead of the H/D by the run-time. (very rare problem) NEW FEATURES TO VERSION 5.01.002 - Default button on 'Confirm Overwrite' dialog is now 'No' for 'no overwriting. - Default button on 'module in use' dialog is now 'No' for no overwriting. - Project comments (Project Attributes dialog) no longer need to be preceeded with // comments markers. SB now inserts these automatcially. - New De-Installer icon created at Setup Builder install-time - When requesting the first disk at the end of building a multi-disk install, SB now checks that disk #01 is in the drive before writing the script file. This stops the problem where some users accidentally did not change the disk and ended up with the script file incorrectly on the last disk. - De-Install fixes - Option to create script without making disks added - MRU List added to field in Build and Test dialogs - Browse button added to allow navigation of directories in Build and Test dialogs - DllSelfRegister and DllSelfUnRegister modified so that they now use the REGSVR or REGSVR32 programs to register OLE Dll files. NEW FEATURES TO VERSION 5.01.003 - New command added to get a file's shared file count: GetRegistryCount() - CheckExists() modified so that it now finds hidden files. - ShowWaitMessage() modified so that if it is repetetively called with new messages (with no HideWaitMessage between the calls) it no longer 'flickers'. Internally, a HideWaitMessage was in fact being done automatically for each call. - Project Attributes dialog (Optional Diskette Files section) modified to use a list instead of lots of check boxes. This makes the product more extendable. - New options added to the previously mentioned list to control copying of regsvr.exe and regsvr32.exe to an installation disk. - OLE controls now correctly unregister themselves in the de-install when, and only when, the file share count reaches zero. - Help file changes. - OLE support finally fully implemented: Self registering .EXE files, self registering .DLL files and .REG files are now fully supported. - SETUP.EXE now accepts parameters and passes them on to the INSTxx interpreter - INSTxx.EXE interpreter now accepts parameters and places them in a new variable: %Parameters% - New functions added: Strip() Strips characters from a string Replace() Replaces characters in a string - New user code section added: 'Pre PM Group Creation' - Setups created by unregistered versions of Setup Builder will display a Shareware dialog and they will now expire after one month. This is to stop installs being distributed which have been created with unlicensed versions of Setup Builder. It has no impact on registered versions. - Register/UnRegister functions modified so that they now record which application a file is registered to. This is so that shared files in partial installs and re-installs are now properly handled. - Import 3rd party components modified (IMPORT.INI) so that dependencies can now be set up between components. For example, this allows the user to select an OCX file and this will automatically include the OLE component files without the user needing to know that they are required. - Self extracting files are now supported. - Project Dialog text dialog changed to enable easier maintenence of messages and easier future enhancements. - New text messages added to display wait messages while OLE control registration/.REG file and file execution for self-extracting files are being processed. - 32-bit support added to IMPORT.INI 3rd party components file. - ExitWindows() function modified to operate correctly under Windows 95 and NT. - SETUP.DAT is now re-written when build script option selected. - New function added to script language: FindInPath() NEW FEATURES TO VERSION 5.01.004 - SETUP.EXE modified to make sure that it checks for the presence of the CTL3DV2.DLL/CTL3D32.DLL and LZEXPAND/LZ32.DLL files before running the install run-time. This stops the WinExec error code (2) and (8) messages which appeared if any of these files were missing. An explanatory message now appears instead. - Browse button added to 'ASKPATH' dialog to activate a new 'Browse Directory' dialog. - Setup Builder now gives the option to include LZ32.DLL in the Project/Attributes dialog - Width of 'wait' window increased - Project .INI file now defaults to the same name as the project .SPJ file instead of %Application%.INI. The latter caused problems when the application name was set to a multi-word or >8 character word in the Project/Attributes dialog. - 'Add to Registry' file property renamed to 'Register as Shared' because this caused confusion with the 'registering' of OLE controls which are registered using the 'File Action' property. - 'ASKPATH' dialog now validates the path name entered such that ALL paths MUST start with d:\ where d is an alphabetic character in upper or lower case depending on the version of INSTxx.EXE. - DDE timeout in INSTxx.EXE increased from 1 to 2 seconds NEW FEATURES TO VERSION 5.01.005 (Released 12/6/1997) 12/6/97 New overwrite confirmations added: Overwrite older only Copy only if not present 12/6/97 Confirmation property renamed to 'Overwrite confirmation' 12/6/97 LLLIB Licensing library functions added to script language: GetLicenseErrorMsg WriteDefaultLicense WriteLicense WriteLicenseUser 12/6/97 New error trapping function added: TrapError 16/6/97 New .INI profile functions added: WriteMultiProfileString DelMultiProfileString 17/6/97 Relinked to LLLIB library to fix licensing bug. 21/06/97 LLLIB Licensing library functions added to script language: GetLicenseUserCompany "LICENSE" dialog now pre-populates its fields with the values in %EF_1% and %EF_2% 9/7/97 Bug fix: Registration of .REG files using REGSVR[32].EXE had incorrect script created which caused a run-time error. Now fixed. NEW FEATURES TO VERSION 5.01.006 (Released 12/6/1997) 12/7/97 Bug fix: Backdrop bitmaps were being displayed as 16 colour only on Win95/NT and some Win31 installations due to an internal palette error in INSTxx.EXE. Bitmaps are now displayed correctly up to 24-bit colours. 16/7/97 New variable added: %System32Directory% At the same time, IMPORT.INI has been changed to reflect this change. 18/7/97 Complete new integrated debugger added so that installations can be run in debug mode. 22/7/97 Bug Fix: If SETUP.SCR was missing from diskette, an error message reporting INSTRUN.PIF being missing was displayed. This should have been SETUP.SCR. Now fixed. Bug Fix: Displaying a cue card for the first time caused a GPF in the 16-bit run-time. This bug occured after INST16 had been converted to Large Memory model (formally it was Medium Model), but was found before the product was released to the market. New user script section added: Pre ASKPATH dialog 27/7/97 Bug Fix: Setup Builder wouldn't compress files which either had a long name or existed in a directory with a long name. This included the situation where Setup Builder itself was installed in a long directory which caused failures for the run-time to be compressed. Now fixed: SB will correctly compress files with long names. This failure was due to COMPRESS.EXE being only a 16-bit application which couldn't handle long names being given to it by Setup Builder. Setup Builder now supplies short names to COMPRESS.EXE so that it now works correctly with long names. This problem has never affected the run-time's ability to handle long file names. NEW FEATURES PLANNED FOR FUTURE RELEASES - Allow an install to automatically select its language, rather than having to build one install for each language required. - Option to select the file compression to use: either MS-Compress (as at present) or Zip format. - Ability to use the Windows 95/NT 'replace file' functionality to allow replacing of 'in use' files - Fully integrate the GPP Software LLLIB Licensing Library KNOWN PROBLEMS/SOLUTIONS - An install is built and then run on a machine. At a later date, that same install is modified such that one of the files in the install has had its 'Add to Registry' property changed. The install is then re-run on the original machine. If the de-install is then run, the file which has had its 'Add to Registry' property changed may fail to be de-installed correctly. In most cases it is likely that the file will always be deleted. This problem does not affect new files added to the project. It is important to make sure that the 'Add to Registry' property is correctly set in the first instance. The problem occurs due to the de-install object's inability to identify the fact that the registration entry has changed because the script for the two types of file (registered and unregistered) is different which means that they are both added to the de-install script. This problem will be attended to in a future release of Setup Builder. Please see the Setup Builder online Windows Help File section 'Commonly Reported Problems'.